

#include "Public.h"


void SysTick_Init(void)
{
  
    if(SysTick_Config(SystemCoreClock/1000))         //48mhz   1ms 的定时器
    {
        while(1);
    }  
   // SysTick->CTRL &= ~SysTick_CTRL_ENABLE_Msk;   //若无法启动则关闭
}

void Init_WatchdogConfig(void)
{
//  IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable); /* 使能对寄存器IWDG_PR和IWDG_RLR的写操作*/
//  IWDG_SetPrescaler(IWDG_Prescaler_16);    /*设置IWDG预分频值:设置IWDG预分频值40k/16*/
//  IWDG_SetReload(500);                 /*设置IWDG重装载值200ms*/
//  IWDG_ReloadCounter();                   /*按照IWDG重装载寄存器的值重装载IWDG计数器*/
//  IWDG_Enable();                          /*使能IWDG*/
  
//  IWDG->KR = 0xCCCC;//开始启动看门狗，此时定时器从0XFFF递减，递减到0就会产生一个复位信号(IWDG_RESET)。
//  IWDG->KR = 0xAAAA;//IWDG_RLR 中的值就会被重新加载到计数器中从而避免产生看门狗复位
//写入0x5555,用于允许狗狗寄存器写入功能



IWDG_WriteAccessCmd(IWDG_WriteAccess_Enable);
//狗狗时钟分频,40K/16=0.4ms
IWDG_SetPrescaler(IWDG_Prescaler_16);
//喂狗时间 2000/0.4MS=800 .注意不能大于0xfff
IWDG_SetReload(2000);
//喂狗
IWDG_ReloadCounter();

IWDG_Enable();
}


//================================
void System_Initial(void)
{
  
  __disable_irq() ; 

   SystemClock_Init();

//   
//   SysTick_Init();
//
   Init_Gpio_Config();
   
    LEDOut(255);    
   
//   
   Init_Timer14_Config();
//   
   Init_Timer3_Config();
//   
//   Init_ADC_Config(); 
//   
   Init_WatchdogConfig(); 
//   
   USART1_Init();
   USART2_Init(); 
//   EXTIX_Init();
   
   __enable_irq() ;
}
